package cn.itcast.lesson02;

import java.lang.reflect.Constructor;
import org.junit.Test;

/**
 * 反射中： java.lang.reflect.Constructor的用法
 */
public class ConstructTest {
	
	@Test
	public void getConstructor() throws Exception{
		
		//根据参数类型的不同来区分不同的构造方法 
		//构造方法中 有  2个参数  第1个参数的参数类型是StringBuffer 第2个参数的参数类型是int
		//String.class.getConstructor(StringBuffer.class,int.class);
		// jdk1.5的新特性  可变参数
		
		//new String(new StringBuffer("abc")); constructor=字节码
		Constructor<?> constructor = String.class.getConstructor(StringBuffer.class);
		
		//拿构造方法构造出1个实例对象 每调用1次相当于new String 
		String obj = (String)constructor.newInstance(new StringBuffer("abc"));
		System.out.println(obj.charAt(2));
	}
	

}
